package com.fy.fyspace.service;

import com.fy.fyspace.common.result.R;
import com.fy.fyspace.model.vo.monitor.PerformanceRecordVO;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 性能监控服务接口
 */
public interface PerformanceMonitorService {

    /**
     * 保存性能记录
     */
    void savePerformanceRecord(PerformanceRecordVO record);

    /**
     * 获取性能记录列表
     */
    R getPerformanceRecords(String monitorName, String methodName, 
                                LocalDateTime startTime, LocalDateTime endTime, 
                                Integer pageNo, Integer pageSize);

    /**
     * 获取性能统计信息
     */
    R getPerformanceStatistics(LocalDateTime startTime, LocalDateTime endTime);

    /**
     * 获取慢查询记录
     */
    R getSlowQueryRecords(LocalDateTime startTime, LocalDateTime endTime, 
                              Integer pageNo, Integer pageSize);

    /**
     * 获取异常记录
     */
    R getExceptionRecords(LocalDateTime startTime, LocalDateTime endTime, 
                              Integer pageNo, Integer pageSize);

    /**
     * 获取接口性能排名
     */
    R getPerformanceRanking(LocalDateTime startTime, LocalDateTime endTime, 
                                 Integer limit);

    /**
     * 清理过期性能记录
     */
    R cleanExpiredRecords(Integer days);

    /**
     * 获取监控配置
     */
    R getMonitorConfig();

    /**
     * 更新监控配置
     */
    R updateMonitorConfig(Map<String, Object> config);

    /**
     * 测试接口性能
     */
    R testInterfacePerformance(String monitorName, Integer testCount);

    /**
     * 获取MySQL数据库监控统计信息
     */
    R getDatabaseStatistics();
}